return handled;
}
-static void
+static gboolean
translate_event_coordinates (GdkEvent *event,
GtkWidget *widget);
gboolean
return TRUE;
event_copy = gdk_event_copy (event);
- translate_event_coordinates (event_copy, widget);
+ if (!translate_event_coordinates (event_copy, widget))
+ {
+ g_object_unref (event_copy);
+ return FALSE;
+ }
return_val = gtk_widget_run_controllers (widget, event_copy, GTK_PHASE_CAPTURE);
}
}
-static void
+static gboolean
translate_event_coordinates (GdkEvent *event,
GtkWidget *widget)
{
graphene_point_t p;
if (!gdk_event_get_coords (event, &x, &y))
- return;
+ return TRUE;
event_widget = gtk_get_event_widget (event);
widget,
&GRAPHENE_POINT_INIT (x, y),
&p))
- {
- p.x = p.y = 0;
- }
+ return FALSE;
gdk_event_set_coords (event, p.x, p.y);
+
+ return TRUE;
}
static gboolean
event_copy = gdk_event_copy (event);
- translate_event_coordinates (event_copy, widget);
+ if (!translate_event_coordinates (event_copy, widget))
+ {
+ g_object_unref (event_copy);
+ return FALSE;
+ }
if (widget == gtk_get_event_target (event_copy))
return_val |= gtk_widget_run_controllers (widget, event_copy, GTK_PHASE_TARGET);